#pragma once


#include <Math/Vector3f.hpp>


TEST( Math, Vector3f_BasicConstruction )
{
	using namespace Math;

	Vector3f	test1( Vector3f::XAxis() );
	
	EXPECT_FLOAT_EQ( 1.0f, test1.X() );
	EXPECT_FLOAT_EQ( 0.0f, test1.Y() );
	EXPECT_FLOAT_EQ( 0.0f, test1.Z() );

	Vector3f	test2( Vector3f::YAxis() );
	
	EXPECT_FLOAT_EQ( 0.0f, test2.X() );
	EXPECT_FLOAT_EQ( 1.0f, test2.Y() );
	EXPECT_FLOAT_EQ( 0.0f, test2.Z() );

	Vector3f	test3( Vector3f::ZAxis() );
	
	EXPECT_FLOAT_EQ( 0.0f, test3.X() );
	EXPECT_FLOAT_EQ( 0.0f, test3.Y() );
	EXPECT_FLOAT_EQ( 1.0f, test3.Z() );

	Vector3f	test4( test1 );
	Vector3f	test5( test2 );
	Vector3f	test6( test3 );

	EXPECT_FLOAT_EQ( 1.0f, test4.X() );
	EXPECT_FLOAT_EQ( 0.0f, test4.Y() );
	EXPECT_FLOAT_EQ( 0.0f, test4.Z() );
	
	EXPECT_FLOAT_EQ( 0.0f, test5.X() );
	EXPECT_FLOAT_EQ( 1.0f, test5.Y() );
	EXPECT_FLOAT_EQ( 0.0f, test5.Z() );
	
	EXPECT_FLOAT_EQ( 0.0f, test6.X() );
	EXPECT_FLOAT_EQ( 0.0f, test6.Y() );
	EXPECT_FLOAT_EQ( 1.0f, test6.Z() );
}
